package designMode.singletonPattern;

/**
 * @className LazySingleton
 * @description  (饱汉式)延迟实例化单件模式，但是这样在多线程情况下可能会造成多例存在，
 *              解决办法1是加入synchronized关键字进行同步，但是有一点不好
 *              只有第一次执行此方法时,才真正需要同步。换句话说,一旦设置
 *              好 singleton变量,就不再需要同步这个方法了。之后每次调用
 *              这个方法,同步都是一种累赘，同步可能造成效率低下
 * @author LIBOFEI
 * @date 2020/6/24 20:49
 * @Version 1.0
 **/
public class LazySingleton {

    private static LazySingleton singleton;

    private LazySingleton(){

    }

    public synchronized LazySingleton getInstance(){
        if(singleton==null){
            singleton = new LazySingleton();
        }
        return singleton;
    }


    public static void main(String[] args) {
        Long cnt = 1000L;
        for(int i = 100 ; i >= 0; i--)
        {
            System.out.println(cnt > 999);
        }

    }
}
